The present invention relates generally to systems and methods for transmitting and receiving data. More particularly, the present invention relates to systems and methods for transmitting and receiving data that allow data transmissions to be prioritized, that allow dynamic grouping of data recipients, that allow the size of data packets to be varied from file to file, and that provide a manifest process to insure the presence, identity, and integrity of transmitted data files.
Some systems and methods for transmitting and receiving data permit the transmission of data to be prioritized. In many of these systems and methods, however, the data transmissions must all be prioritized before any data transmission can begin in order to insure that transmission priorities are maintained. For example, under these systems and methods, once a data transmission has begun for a low priority data file, a data transmission for a high priority data file must wait for the low priority transmission to complete before the high priority transmission can begin. In many cases this approach to prioritization results in bottlenecking of data where very large, low priority data files that are being transmitted prevent the transmission of many small, high priority data files. Similarly, bottlenecking can also occur in instances where many large, high priority data files prevent a small, low priority file from being transmitted in a timely fashion.
Frequently it is desirable to send a single data transmission from a transmitter to multiple recipients. Some systems and methods for transmitting data allow such transmissions to be performed to predetermined groups of individuals. Some of these and other systems and methods for transmitting data allow recipients to receive data for groups in which the recipients are interested. None of these systems and methods, however, allows a transmitter to dynamically specify the recipients for a single transmission at the time of the transmission.
Many systems and methods for transmitting data use packet based transmission to transmit data from one place to another. These forms of packet based transmission, however, are rigid in that they fix the size of every packet regardless of the data file type, the data file size, or the characteristics of the path over which the data is to be transmitted. Thus, in many of these systems and methods, the same packet size may be used to transmit a 100 byte file as is used to transmit a 100 Mega-byte file, for example. Using the same size packet regardless of the size of the file to be transmitted is inefficient because the percentage of the file in each packet shrinks rapidly as the size of the transmitted file grows.
Finally, in many systems and methods for transmitting data, groups of data files are transmitted from one place to another as bundles of data files. Unfortunately, however, once these files arrive at their destination, the batch of files must be presumed to include all of the intended files because no additional indicator is provided as to what files should be present. Additionally, each of the transmitted files is usually only identifiable by the name, date, and time associated with the file. Lastly, in order to process the received files properly, the receiving system must know what to do with the files after they have arrived.
In view of the foregoing, it would be desirable to provide a system and method for transmitting and receiving data in which data being transmitted can be prioritized while not causing bottlenecking of the data.
It would also be desirable to provide a system and method for transmitting and receiving data in which multiple recipients of data can be dynamically specified just prior to a group data transmission.
It would be further desirable to provide a system and method for transmitting and receiving data in which the size of packets used in the transmission of data can be varied from file to file.
It would be even further desirable to provide a system and method for transmitting and receiving data which can verify the presence, identity, and integrity of each data file in a bundle of transmitted data files.